package com.dog.basics.service.mtkj;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dog.basics.bean.dto.admin.mtkj.DepositFromDto;
import com.dog.basics.bean.dto.admin.mtkj.HospitalCostAddDto;
import com.dog.basics.bean.dto.api.mtkj.ApiDepositAddDto;
import com.dog.basics.bean.model.mtkj.MtDeviceDeposit;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dog.basics.bean.vo.admin.mtkj.DepositVo;
import com.dog.basics.bean.vo.api.mtkj.ApiDepositVo;
import com.dog.basics.bean.vo.api.mtkj.ApiOrderPrepayVo;
import com.dog.basics.common.annotation.RedisLock;
import com.dog.basics.common.util.IPageVo;
import com.dog.basics.common.util.PageParam;

/**
 * <p>
 * 设备押金记录 服务类
 * </p>
 *
 * @author wph
 * @since 2020-09-29
 */
public interface IMtDeviceDepositService extends IService<MtDeviceDeposit> {
    /**
     * @Description: 分页设备押金记录
     * @Param: status
     * @return: IPage<DepositVo>
     * @Author: wph
     * @Date:
     */
    IPageVo<DepositVo> getPageList(PageParam page, DepositFromDto obj);
    /**
     * @Description: 获取我的押金列表
     * @Param: CashWithdrawalAddDto
     * @return: Boolean
     * @Author: wph
     * @Date: 2020/05/29  0027
     */
    ApiDepositVo getApiDepositInfo(Integer depositState);

    /**
     * @Description: 删除设备押金记录
     * @Param: ids
     * @return: Boolean
     * @Author: wph
     * @Date: 2020/05/19  0027
     */
    Boolean deleteObj(Long id);

    /**
     * @Description: 保存押金记录
     * @Param: obj
     * @return: Boolean
     * @Author: wph
     * @Date: 2020/05/19  0027
     */
    ApiOrderPrepayVo saveObj(ApiDepositAddDto obj,Long userId);

    /**
     * 小程序微信 Order订单 - 支付回调
     * @param xmData
     * @return
     * guonh 2019年10月14日
     */
    Boolean wxMiniPayLowerOrderCallback(String xmData);
    /**
     * @Description: app设备押金申请退款
     * @Param: OrderAddDto
     * @return: R
     * @Author: wph
     * @Date:
     */
    Boolean returnObj(Long id);
    /**
     * @Description: 确认退款(pc)
     * @Param: OrderFromDto
     * @return: IPage<PlatePageVo>
     * @Author: wph
     * @Date:
     */
    Boolean pcReturnObj(Long id);
}
